gpt4 book ai didi

c - 强行打印垃圾字符

转载 作者:太空宇宙 更新时间:2023-11-04 01:46:03 26 4
gpt4 key购买 nike

<分区>

这是一个应该读取输入的程序,一个数字“n”和一个字符,然后将这个字符复制 n 次。它工作得很好,但是当我输入一个大数字时,例如 8+,它会完美复制,但随后会在末尾添加垃圾值。我不明白为什么它会这样做,因为我使用了 malloc 并且我在内存中正好为我保存了 n 个 block 。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* create_string (char ch, int n);
void main ()
{
int n;
char ch;
printf("Enter number for duplicates: ");
scanf("%d",&n);
printf("Enter a letter: ");
scanf(" %c", &ch);
printf("The letter '%c' duplicated %d times is: ",ch,n);
char* ptr=create_string(ch,n);
printf("%s",ptr);
}
char* create_string (char ch, int n)
{
char* dup=(char*)malloc(n*sizeof(char));
int i;
for (i=0; i<n; i++)
{
dup[i]=ch;
}
return dup;
}

测试运行: Test run.

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