我在這裏做錯了什麼?我是否將內存分配給原始的charPtr
或其他東西?爲什麼我可以在func2
內讀取charPtr
的值,但不能在主(charPtr
是NULL
的主)?通過傳遞兩個函數來分配指針
#include <stdlib.h>
#include <stdio.h>
void func2(char *charPtr)
{
charPtr = (char *)malloc(sizeof(char));
*charPtr = 'c';
printf("func2: %c\n", *charPtr);
}
void func1(char** charDoublePointer)
{
//*charDoublePointer = (char *)malloc(sizeof(char));
func2(*charDoublePointer);
}
int main(int argsc, char* argv[])
{
char * charPtr = NULL;
func1(&charPtr);
printf("%c\n", *charPtr);
}
在'func2',改變什麼'charPtr'點不是調用函數可見。 – crashmstr 2014-10-17 18:54:59
讀你的頭銜會讓你頭疼。此外,[不要施放malloc(和朋友)]的結果(http://stackoverflow.com/q/605845)。 – Deduplicator 2014-10-17 18:55:19