1
내가 프로그래밍에 새로운 오전이 특정 문제에 직면 한 문자열 :액세스 문자열의 문자는
int *FindLine(char *lines[100],int line_number) {
char **pointer=lines;
int i,*stack,counter=0;
stack=(int*)calloc(30,sizeof(int));
for (i=0;i<line_number;i++)
if (*pointer[i]=='{') {
stack[counter]=i+1;
counter++;
}
return stack;
}
main(){
char *line[100];
FILE *fp;
char FileName[20];
char Buffer[100];
fp=fopen(FileName,"r");
while(fgets(Buffer,100,fp)!=NULL) {
line[i]=strdup(Buffer);
i++;
}
NumOfLines=i;
Stack=FindLine(line,NumOfLines);
system("PAUSE");
}
스택은 각 행의 수를 저장 한 것으로 추정된다 '{'대신에 나타납니다 '{'가 줄의 첫 번째 문자 인 경우에만 저장합니다. 문자열에 대한 포인터의 배열에있는 포인터가 가리키는 문자열의 모든 개별 문자에 액세스하는 C 방법이 있습니까?
'calloc' 대신'malloc'을 사용하십시오. calloc이 스택 (함수 범위 메모리)에 메모리를 할당하지 않았습니까? 따라서 외부로 반환 할 수 없습니다. –
@JoopEggen - 아니요. 'calloc'은 스택에서 메모리를 할당하지 않습니다. 힙에서 할당합니다. – user93353