gpt4 book ai didi

c - 动态内存分配给字符串,给出了不正确的大小

转载 作者:行者123 更新时间:2023-11-30 21:39:03 25 4
gpt4 key购买 nike

我尝试动态地将内存分配给字符串,但是当我打印出大小时,它显示 4 而不是应该分配的 (11+1) 字节。为什么会出现这种情况?该字符串打印得很好。

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

int main(){
char c, *string;
int i=0, a=1;

printf("\nEnter the string : ");

string = (char *) malloc (sizeof(char));
while(c != '\n'){
c = getchar();

string = (char *) realloc (string, sizeof(char) * a);

string[i] = c;

a++, i++;
}
string[i] = '\0';

puts(string);

printf("\n%d", sizeof(string));

}

Input : Sample Text
Output :
Sample Text
4

最佳答案

sizeof 为您提供 char 指针的大小,在您的平台上为 4。

关于c - 动态内存分配给字符串,给出了不正确的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42468005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com