我在將一個字符串數組中的特定值的地址存儲到指針並將其打印出來時遇到了一些問題。請原諒那些不好的變量名稱,它們只是爲了這個例子。將字符串的地址存儲在字符串數組中
char **code; // code is an array of 100 strings of length 8 characters
code = malloc (100*sizeof(*code));
for (i=0; i<100; i++) {
code[i]=malloc(8*sizeof(**code));
}
char **r; // r is an array of 16 strings of 32 characters
r = malloc (16*sizeof(*r));
for (i = 0; i < 16; i++)
r[i] = malloc(32*sizeof(**r));
char *a; // a is a pointer to a string
a = (char *) &r[13]; // point a to value at r[13]
*a = (char *)&code[100]; // trying to assign the value of r[13] to the address of code[100]
printf("Code 100 Add: %p a Val: %i\n", &code[100], *sp); // trying to check values.
我想要(R [13]的值,它指向至r [13],所以分配)在代碼[100]分配的值,以字符串的地址的值。即使是32個字符的字符串也是最好的方法嗎?
得到任何幫助, 加雷思
這個例子有很多缺陷。示例:不投射malloc的結果,將(char *)分配給(a)和(* a)。你能發佈真實的代碼嗎?你試圖做什麼?如果編譯出現問題 - 從編譯器錯誤開始。如果您在嘗試運行時遇到問題 - 請發佈編譯好的代碼並從一個好的調試器和較小的陣列開始,以便您可以看到每一步發生了什麼。 – evan 2011-04-27 17:37:46