2011-06-03 16 views
6

मेरे पास एक संकेतक है जो एक सरणी को इंगित करता है और हर बार डेटा पढ़ने के बाद बढ़ाया जाता है। प्रत्येक डेटा अलग-अलग लंबाई का होता है और इसलिए मैं पॉइंटर को कूदने के लिए स्ट्रेल का उपयोग करता हूं। मैं पॉइंटर को अपने शुरुआती पते पर कैसे रीसेट कर सकता हूं ?! आपके सहयोग के लिए धन्यवाद।सूचक स्थिति रीसेट

उत्तर

11

मूल मान को अन्य पॉइंटर में स्टोर करें, फिर उस संग्रहीत मूल्य को वापस असाइन करें।

char* original; 
char* current; 
current = wherePointerShouldPointAtStart(); 
original = current; 
while(someCondition()) { 
    usePointer(&current); 
} 
current = original; 
3

मुझे लगता है कि आपका सर्वश्रेष्ठ दांव बस सूचक की एक प्रतिलिपि बनाने के लिए जब भी आप पहला तत्व तुम सिर्फ नई प्रतिलिपि का उपयोग संदर्भ के लिए की जरूरत है हो सकता है, तो। उदाहरण:

int *array = ..; 
int *beginning = array; 

आप पहले तत्व का संदर्भ, या यहाँ तक कि मूल सूचक को शुरुआती पता कॉपी करने के लिए की जरूरत है, तो आप सिर्फ शुरुआत सूचक का उपयोग करें।

संबंधित मुद्दे