亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1362 | 回復(fù): 3
打印 上一主題 下一主題

錯誤求救 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-08-01 01:14 |只看該作者 |倒序瀏覽
本帖最后由 blackgenius 于 2010-08-01 02:06 編輯

自己寫一個程序來純粹為了學(xué)習(xí)一些函數(shù)的使用,結(jié)果錯誤的很奇怪,請論壇里的長老們解解急,看看我的程序為什么錯誤,要如何改~謝過各位,在線等~
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. int eva_rand(int, int, int);

  5. int main(int argc, char* argv[])
  6. {
  7.   int arg1, arg2, arg3;

  8.   if(argc != 4){
  9.     printf("請輸入3個參數(shù),第一個是要產(chǎn)生的隨機數(shù)個數(shù),第二個是正數(shù)個數(shù),第三個是要產(chǎn)生的數(shù)的位數(shù)。\n");
  10.     exit(1);
  11.   }
  12.   arg1 =  atoi(argv[1]);
  13.   arg2 =  atoi(argv[2]);
  14.   arg3 =  atoi(argv[3]);

  15.   eva_rand(arg1, arg2, arg3);
  16.   return 0;
  17. }

  18. int eva_rand(int i, int j, int k) {

  19.   int tnb, pnb;
  20.   long rdi, rdf;
  21.   char crdi[200];
  22.   char crdf[200];
  23.   char ngc[200];
  24.   FILE *fp;
  25.   size_t len;

  26.   tnb = 0;
  27.   pnb = 0;
  28.   bnb = 0;

  29. sprintf(ngc, "-");

  30.   fp = fopen("/tmp/data","w");

  31.   for (; tnb < i && pnb < j; tnb++, pnb++){
  32.     srand(time());
  33.     rdi = rand();
  34.     rdf = rand();
  35.     sprintf(crdi, "%ld", rdi);
  36.     sprintf(crdf, "%ld", rdf);
  37.     len = strlen(crdi);
  38.     if ( len < k){
  39.       continue;
  40.     }
  41.     crdi[k] = '\0';
  42.     crdf[3] = '\0';
  43.     crdf[2] = crdf[1];
  44.     crdf[1] = crdf[0];
  45.     crdf[0] = '.';
  46.     strcat(crdi, crdf);
  47.     fprintf(fp, "%s ", crdi);
  48.     if (!(tnb%5)) {
  49.       fprintf(fp, "\n");
  50.     }
  51.   }
  52.   for (pnb=0 ; tnb < i && pnb < i - j; tnb++, pnb++) {
  53.     srand(time);
  54.     rdi = rand();
  55.     rdf = rand();
  56.     sprintf(crdi, "%ld", rdi);
  57.     sprintf(crdf, "%ld", rdf);
  58.     len = strlen(crdi);
  59.     if ( len < k){
  60.       continue;
  61. }
  62.     crdi[k] = '\0';
  63.     crdf[3] = '\0';
  64.     crdf[2] = crdf[1];
  65.     crdf[1] = crdf[0];
  66.     crdf[0] = '.';
  67.     strcat(crdi, crdf);
  68.     strcat(ngc, crdi);
  69.     fprintf(fp, "%s ", ngc);
  70.     if (!(tnb%5)) {
  71.       fprintf(fp, "\n");
  72.     }
  73.   }
  74.   fclose(fp);
  75.   return 0;
  76. }
復(fù)制代碼
我運行./a.out 10 5 2得到這么一串提示
*** glibc detected *** ./a.out: double free or corruption (top): 0x09dcf008 ***
======= Backtrace: =========
/lib/libc.so.6[0xa655a5]
/lib/libc.so.6(cfree+0x59)[0xa659e9]
/lib/libc.so.6(fclose+0x136)[0xa53c96]
./a.out[0x8048995]
./a.out[0x8048653]
/lib/libc.so.6(__libc_start_main+0xdc)[0xa11e9c]
./a.out[0x8048511]
======= Memory map: ========
009dd000-009f8000 r-xp 00000000 fd:00 163874     /lib/ld-2.5.so
009f8000-009f9000 r-xp 0001a000 fd:00 163874     /lib/ld-2.5.so
009f9000-009fa000 rwxp 0001b000 fd:00 163874     /lib/ld-2.5.so
009fc000-00b4e000 r-xp 00000000 fd:00 163908     /lib/libc-2.5.so
00b4e000-00b50000 r-xp 00152000 fd:00 163908     /lib/libc-2.5.so
00b50000-00b51000 rwxp 00154000 fd:00 163908     /lib/libc-2.5.so
00b51000-00b54000 rwxp 00b51000 00:00 0
00bd0000-00bd1000 r-xp 00bd0000 00:00 0          [vdso]
065a1000-065ac000 r-xp 00000000 fd:00 163933     /lib/libgcc_s-4.1.2-20080825.so.1
065ac000-065ad000 rwxp 0000a000 fd:00 163933     /lib/libgcc_s-4.1.2-20080825.so.1
08048000-08049000 r-xp 00000000 fd:00 393296     /home/ArmyAnt/src/a.out
08049000-0804a000 rw-p 00000000 fd:00 393296     /home/ArmyAnt/src/a.out
09dcf000-09df0000 rw-p 09dcf000 00:00 0          [heap]
b7fb8000-b7fba000 rw-p b7fb8000 00:00 0
bf938000-bf94d000 rw-p bffea000 00:00 0          [stack]
已放棄

論壇徽章:
0
2 [報告]
發(fā)表于 2010-08-01 10:17 |只看該作者
回復(fù) 1# blackgenius

gdb 調(diào)試說我time()函數(shù)的地方有問題,所以我指定了一個time值time(0),確實可以排除段錯誤了,可惜可能我邏輯上有問題,導(dǎo)致生成的data文件里面的數(shù)據(jù)不對~呵呵

論壇徽章:
0
3 [報告]
發(fā)表于 2010-08-01 11:09 |只看該作者
回復(fù) 1# blackgenius

呵呵,自己調(diào)出來了~
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. int eva_rand(int, int, int);

  5. int main(int argc, char* argv[])
  6. {
  7.   int arg1, arg2, arg3;

  8.   if(argc != 4){
  9.     printf("請輸入3個參數(shù),第一個是要產(chǎn)生的隨機數(shù)個數(shù),第二個是正數(shù)個數(shù),第三個是要產(chǎn)生的數(shù)的位數(shù)。\n");
  10.     exit(1);
  11.   }
  12.   arg1 =  atoi(argv[1]);
  13.   arg2 =  atoi(argv[2]);
  14.   arg3 =  atoi(argv[3]);

  15.   eva_rand(arg1, arg2, arg3);
  16.   return 0;
  17. }

  18. int eva_rand(int i, int j, int k) {

  19.   int tnb, pnb;
  20.   int rdi, rdf;
  21.   char crdi[200];
  22.   char crdf[200];
  23.   char ngc[200];
  24.   FILE *fp;
  25.   size_t len;

  26.   tnb = 0;
  27.   pnb = 0;


  28.   fp = fopen("/tmp/data","w");

  29.   for (; tnb < i && pnb < j; tnb++, pnb++){
  30. //srand((int)time((time_t*)NULL));
  31.     srand(tnb+(int)time((time_t*)NULL));
  32.     rdi = rand();
  33.     rdf = rand();
  34.     sprintf(crdi, "%d", rdi);
  35.     sprintf(crdf, "%d", rdf);
  36.     len = strlen(crdi);
  37.     if ( len < k){
  38.       continue;
  39.     }
  40.     crdi[k] = '\0';
  41.     crdf[3] = '\0';
  42.     crdf[2] = crdf[1];
  43.     crdf[1] = crdf[0];
  44.     crdf[0] = '.';
  45.     strcat(crdi, crdf);
  46.     fprintf(fp, "%s ", crdi);
  47.     if (!((tnb+1)%10)) {
  48.       fprintf(fp, "\n");
  49.     }
  50.   }
  51.   for (pnb=0 ; tnb < i && pnb < i - j; tnb++, pnb++) {
  52.     srand(tnb+(int)time((time_t*)NULL));
  53.     rdi = rand();
  54.     rdf = rand();
  55.     sprintf(ngc, "-");
  56.     sprintf(crdi, "%d", rdi);
  57.     sprintf(crdf, "%d", rdf);
  58.     len = strlen(crdi);
  59.     if ( len < k ){
  60.       continue;
  61.     }
  62.     crdi[k] = '\0';
  63.     crdf[3] = '\0';
  64.     crdf[2] = crdf[1];
  65.     crdf[1] = crdf[0];
  66.     crdf[0] = '.';
  67.     strcat(crdi, crdf);
  68.     strcat(ngc, crdi);
  69.     fprintf(fp, "%s ", ngc);
  70.     if (!((tnb+1)%10)) {
  71.       fprintf(fp, "\n");
  72.     }
  73.     memset(ngc, 0x00, sizeof(ngc));
  74.   }
  75.   fclose(fp);
  76.   return 0;
  77. }

復(fù)制代碼

論壇徽章:
0
4 [報告]
發(fā)表于 2010-08-01 11:20 |只看該作者
回復(fù) 1# blackgenius
哦,我感覺在自娛自樂:wink:
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP