C言語初心者です。
文字列rawcがリストlistの中に入っていない(登録されていない)とき、
その文字列をリストの登録されている最後に格納する関数regを作成しました。
既に登録されている文字列を上書きする事を防ぐため、
int*型cntをリストに登録された最終番号として関数に渡し、
新しく文字列が登録されたときにはインクリメントするようにしました。
(用いたいプログラムの都合上list[0]には格納しないようにスキップ)
しかしポインタを渡す過程でかプログラムがフリーズしてしまいます。
ポインタ渡しを調べても解決ができませんでした。
どなたかご教授頂きたいです。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void reg(char rawc[50], char list[300][50], int *cnt);
int main(void){
int i;
int cnt;
char raw[300][50], rawc[50];
char list[300][50];
cnt=(int)malloc(sizeof(int));
for(i=0;i<300;i++){
strcpy(list[i],"nothing");
}
strcpy(rawc,"test");
*cnt=0;
reg(rawc,list,cnt);
}
void reg(char rawc[50], char list[300][50], int *cnt){
int i;
int flag=0;
if(*cnt!=0){
for(i=0;i<*cnt;i++){
puts("a");
if(strcmp(rawc,list[i])==0){
flag=1-flag;
break;
}
}
}
if(flag==0){
*cnt++;
strcpy(list[*cnt],rawc);
}
}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/16 03:16