如何在C中使用calloc()?

如何在C中使用calloc()?,第1张

概述如果我的字符串在此程序中超过9个字符,我不应该收到错误吗? // CString.c// 2.22.11#include <stdio.h>#include <stdlib.h>#include <string.h>main(){ char *aString = calloc(10, sizeof(char)); if (aString == NULL) 如果我的字符串在此程序中超过9个字符,我不应该收到错误吗?

// 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()?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1213490.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存