// CString.c// 2.22.11#include <stdio.h>#include <stdlib.h>#include <string.h>main(){ char *aString = calloc(10,sizeof(char)); if (aString == NulL) { return 1; } printf("PLEASE ENTER A WORD: "); scanf("%s",aString); printf("YOU TYPED IN: %s\n",aString); //printf("STRING LENGTH: %i\n",strlen(aString));}
谢谢
blargman
解决方法 您没有收到编译器错误,因为语法是正确的.什么是不正确的逻辑,你得到的是未定义的行为,因为你写入缓冲区末尾的内存.为什么它是未定义的行为?好吧,你没有分配那个内存,这意味着它不属于你 – 你正在进入一个被警告磁带封闭的区域.考虑您的程序是否在缓冲区之后直接使用内存.您现在已经覆盖了该内存,因为您占用了缓冲区.
考虑使用像这样的大小说明符:
scanf("%9s",aString);
所以你不要超过你的缓冲区.
总结以上是内存溢出为你收集整理的如何在C中使用calloc()?全部内容,希望文章能够帮你解决如何在C中使用calloc()?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)