为了账号安全,请及时绑定邮箱和手机立即绑定

为什么字符串没了?没找到原因,可能思维定式了,先去玩玩。visual studio2015不会调试只懂点gdb。

为什么字符串没了?没找到原因,可能思维定式了,先去玩玩。visual studio2015不会调试只懂点gdb。

C
AIxer 2016-04-05 16:15:50
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #include <stdbool.h> #define CAP_INCR 5 #define MAX 100 int main(void) { bool sorted = true; unsigned j = 0; char more = '\0'; char* ptr = NULL; char buffer[MAX] = ""; unsigned count = 0; //count how many yanyu inputed unsigned init = 5; char* ptemp = NULL; char** pTemp = NULL; char** slangs = calloc(init,sizeof(char*)); //Let us get the input for (;;) { printf("Input a piece of slang.\n-->:"); ptr = fgets(buffer, MAX, stdin); *(slangs + 1) = ptr;  (这里的一原本是  count++  ,现在是测试问题的) if (*ptr == '\n')break; //If the memory is small if ((count - 1) == init)   //the memory isn't enough { init += CAP_INCR; pTemp = realloc(slangs, init*sizeof(slangs)); if (!pTemp)  //if failed! { printf_s("Error !!!\n"); free(slangs); slangs = NULL; exit(1); } slangs = pTemp; pTemp = NULL; } printf("%s",*(slangs+1));(这里可以显示) } printf("%s",*(slangs+1));  (是为测试用的)  (没显示任何东西) /*//Now let's sort it   (这里用冒泡排序) while (!sorted) { sorted = true; for (size_t i = 0; i < count -1; i++) { if (strnlen_s(slangs[i], MAX) < strnlen_s(slangs[i + 1], MAX)) { sorted = false; ptemp = slangs[i]; slangs[i] = slangs[i+1]; slangs[i + 1] = ptemp; } } } //Output them  for (size_t i = 0; i < count; ++i) { printf_s("\n%s\n",slangs[i]); }*/ free(slangs); slangs = NULL; return 0; } (在windows 7上的运行结果,用的是visual studio 2015 community) Input a piece of slang. -->:这是运行结果 这是运行结果 Input a piece of slang. -->:第一个能显示出来 第一个能显示出来 Input a piece of slang. -->:第二个就不行了 第二个就不行了 Input a piece of slang. -->:当然换成 let alone :   count++ 当然换成 let alone :   count++ Input a piece of slang. -->:希望各位指教!!!! 希望各位指教!!!! Input a piece of slang. -->:感谢各位 感谢各位 Input a piece of slang. -->: 请按任意键继续. . .
查看完整描述

1 回答

?
onemoo

TA贡献883条经验 获得超454个赞

目前的代码中count并没有用于计数。

不过我测试时可以正常显示输入的所有短语,我没有遇到你说的“第二个就不行了”的情况

查看完整回答
反对 回复 2016-04-06
  • AIxer
    AIxer
    嗯,count被我改为了 1 来测试程序的,呃,难道是VS2015的问题?还有,非常感谢你哈
  • 1 回答
  • 0 关注
  • 1325 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信