提问人:Duncan 提问时间:12/20/2022 更新时间:12/20/2022 访问量:23
C struct 函数返回值输出错误 [duplicate]
C struct Function return value output error [duplicate]
问:
我正在用 C 语言练习字符串,我正在发布一个问题,因为我得到了一个不需要的结果。
我按 123、456、789 的顺序保存了字符串,但 //这里的输出是 789,789, 789。
如果您能指出错误的部分,我将不胜感激。
感谢您的阅读。
#include <stdio.h>
#include <stdlib.h>
typedef struct Que
{
char *s;
int t;
} QUE;
QUE que[50];
int wp;
void push(char *s)
{
que[wp].s = s;
printf("que[wp].s = %s\n",que[wp].s);
wp++;
}
int cnt = 0;
char * input(char *str)
{
static char arr[3];
if(cnt == 0)
{
arr[0] = '1';
arr[1] = '2';
arr[2] = '3';
}
else if(cnt==1)
{
arr[0] = '4';
arr[1] = '5';
arr[2] = '6';
}
else if(cnt==2)
{
arr[0] = '7';
arr[1] = '8';
arr[2] = '9';
}
cnt++;
return arr;
}
void Temp()
{
char *a = "123";
for(int i=0; i<3; i++)
{
char *Nchk = malloc(sizeof(char)*3);
Nchk = input(a);
printf("Nchk = %s\n",Nchk);
push(Nchk);
free(Nchk);
}
// Here...!!
printf("%s\n",que[0].s);
printf("%s\n",que[1].s);
printf("%s\n",que[2].s);
}
int main(void){
int ans = -1;
Temp();
return 0;
}
这里。。。! 我还期望队列值为 123、456、789。
答: 暂无答案
评论
"123"
malloc
input
arr
input