在 c中,
是不是不能在函数里分配内存?例子(出错了),是函数内可以打印,main函数不能打印,是不是在 在函数里分配内存无效??void charTemp(char *ptr)
{
ptr=(char *)malloc(20);
strcpy(ptr,"123");
printf("test:%s\n",ptr);
return ;
}int main
{
char * ptr;
charTemp(ptr);
printf("test:%s\n",ptr);
}
是不是不能在函数里分配内存?例子(出错了),是函数内可以打印,main函数不能打印,是不是在 在函数里分配内存无效??void charTemp(char *ptr)
{
ptr=(char *)malloc(20);
strcpy(ptr,"123");
printf("test:%s\n",ptr);
return ;
}int main
{
char * ptr;
charTemp(ptr);
printf("test:%s\n",ptr);
}
void charTemp(char * *ptr)
{
*ptr=(char *)malloc(20);
strcpy(*ptr,"123");
printf("test:%s\n",*ptr);
return ;
}
int main(int argc, char* argv[])
{
char * ptr=NULL;
charTemp(&ptr); printf("test:%s\n",ptr);
return 0;
}
#include <malloc.h>
#include<string.h>void charTemp(char *ptr)
{
ptr=(char *)malloc(20);
strcpy(ptr,"123");
printf("test:%s\n",ptr);
return ;
}int main() //()
{
char * ptr = NULL;
charTemp(ptr);
printf("test:%s\n",ptr);
return 0;
}
尽量在局部域定义对象是被提倡的,
#include <malloc.h>
#include<string.h>void charTemp(char *ptr)
{
ptr=(char *)malloc(20);
strcpy(ptr,"123");
printf("test:%s\n",ptr);
return ;
}int main() ///
{
char * ptr = NULL; ///
charTemp(ptr);
printf("test:%s\n",ptr);
delete ptr; ///
return 0;
}
有内存泄漏的话,我想.NET7.0也会出现警告啊!