国外网站做任务套利,网络推广员怎么做,北京做网站建设多少钱,推荐几个自学做衣服的网站该楼层疑似违规已被系统折叠 隐藏此楼查看此楼6、free()函数问#xff1a;下面的程序会在用户输入’freeze’的时候出问题#xff0c;而’zebra’则不会#xff0c;为什么?#include int main(int argc, char *argv[]) {char *ptr (char*)malloc(10);if(NULL ptr){printf(…该楼层疑似违规已被系统折叠 隐藏此楼查看此楼6、free()函数问下面的程序会在用户输入’freeze’的时候出问题而’zebra’则不会为什么?#include int main(int argc, char *argv[]) {char *ptr (char*)malloc(10);if(NULL ptr){printf(\n Malloc failed \n);return -1;}else if(argc 1){printf(\n Usage \n);}else{memset(ptr, 0, 10);strncpy(ptr, argv[1], 9);while(*ptr ! z){if(*ptr )break;elseptr;}if(*ptr z){printf(\n String contains z\n);// Do some more processing }free(ptr);}return 0; }答这里的问题在于代码会(通过增加“ptr”)修改while循环里“ptr”存储的地址。当输入“zebra”时while循环会在执行前被终止因此传给free()的变量就是传给malloc()的地址。但在“freeze”时“ptr”存储的地址会在while循环里被修改因此导致传给free()的地址出错也就导致了seg-fault或者崩溃。7、*和操作问下面的操作会输出什么?为什么?#include int main(void) {char *ptr Linux;printf(\n [%c] \n,*ptr);printf(\n [%c] \n,*ptr);return 0; }答输出结果应该是这样[L] [i]因为“”和“*”的优先权一样所以“*ptr”相当于“*(ptr)”。即应该先执行ptr然后才是*ptr所以操作结果是“L”。第二个结果是“i”。