访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容
下面是引用ducktw于2008-11-03 23:02(楼主)发表的 请教指标用法【已自行解决】: 经过两天努力,终于勉强拼出来了,贴出来请先进指教,看能否提供更好的写法,谢谢。 指标用法 #include "stdafx.h" #include <iostream> .......
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc,char** argv) { int i=0,no=0,flag=1,word=-1,buf_size=256; char c; char *temp=NULL,*ptr; char **name=NULL; temp=(char*)malloc(sizeof(char)*buf_size);/*buffer size=255 256='\0'*/ while(flag) { printf("Please input the number what you want enter:"); scanf("%d",&no); if(no>0) flag=0; } getchar(); /* 处理没被吃掉的enter键(也就是'\n') */ name=(char**)malloc(sizeof(char*)*no); for(i=0;i<no;i++) { printf("Please input NO.%d name:",i+1); word=-1; /* 每次开始的初使化动作 */ temp=(char*)malloc(sizeof(char)*buf_size); /*开空间,预设为256,若有超过 每次开超过一倍空间 */ while((c=getchar())!='\n') { word++; if(word<buf_size) temp[word]=c; else /* 超过buf_size 则新开多一倍的空间来储放 */ { ptr=temp; buf_size*=2; temp=(char*)malloc(sizeof(char)*buf_size); strcpy(temp,ptr); free(ptr); /* 将旧有不用的空间还回去 */ temp[word]=c; } } temp[word+1]='\0'; /* 确定结尾必为'\0' */ name[ i ]=(char*)malloc(sizeof(char)*strlen(temp)+1); strcpy(name[i],temp); free(temp); } for(i=0;i<no;i++) { printf("No.%d %s\n",i+1,name[i]); } for(i=0;i<no;i++) /*用完的空间要还回去 */ free(name[i]); system("PAUSE"); return 0; }
下面是引用WindinCloud于2008-11-12 00:53(2楼)发表的 : 我觉得不用太拘泥指标跟阵列某种程度上你应该要先理解 array 与 pointer 有啥相关以下的是我改过的程式.......
下面是引用teldeanmac85于2008-11-12 13:16(3楼)发表的 : 请问程式真的能work吗? 有点问题耶~
下面是引用三仙于2008-11-12 14:14(4楼)发表的 : 1.请问程式真的能work吗?ans.能不能 run ,欢迎告知!! 如有问题,希望对这方面有了解的 能够提出具体的看法,让大家都能学习到 如果对问题有帮助,都会有评分的
下面是引用WindinCloud于2008-11-12 17:02(6楼)发表的 : 我帮t大平反一下 的确有问题 问题出在系统 因为他把我程式中"[ i ]" 变成斜体 这样自然会出问题了 版大可以帮我反应一下嘛? XD
Wind Code 中 [i] 会被当成斜体字 建议使用 [code] your statement [/code ]