なぜ全部がうまくいかないのか理解できません。
malloc
関数でやりたいだけですがfunc
、そこから戻るとmalloc
消えてしまいます...そして
*glibcが検出されました./test:free():無効なポインター:0xb76ffff4 * *
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <errno.h>
int func(char *p) {
p=(char*)malloc(1);
*p='a';
printf("1. p= %c\n",*p);
return 0;
}
int main()
{
char *p;
func(p);
printf("2. p= %c\n",*p);
free(p);
return 0;
}