我在这里做错了什么?我是否将内存分配给原始的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