读书人

为啥这段代码编译没警告运行不出错

发布时间: 2013-11-19 22:55:29 作者: rapoo

为什么这段代码编译没警告,运行不出错?


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc,char *argv[])
{
char *p = malloc(100);
strcpy(p,"asdfsadfasd");
free(p);

printf("%s\n",p);

return 0;
}



root@ubuntu:~/liang/k-r# cc free-mal.c -Wall
root@ubuntu:~/liang/k-r# ./a.out
asdfsadfasd
root@ubuntu:~/liang/k-r#
[解决办法]
“malloc”和“free”
相当于
“借”和“还”
而不相当于
“创造”和“销毁”!

读书人网 >C语言

热点推荐