開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料、light版)
- 言語: C
- コンパイラ: UNIX ccコンパイラ (汎用UNIX)
『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) II部(単純なプログラミング)の13章(単純なポインタ)13.6(ポインタを使用した文字列分割)設問13-1を解いてみる。
設問13-1.
変数nameが一時変数で、関数は、nameへのポインタを返すけど、関数終了後、nameの値は消えてしまうから。staticでnameを恒久変数にすればいい。
コード(TextWrangler)
#include <stdio.h>
#include <string.h>
char *tmp_name(void){
static char name[30];
static int sequence = 0;
++sequence;
strcpy(name, "tmp");
name[3] = sequence + '0';
name[4] = '\0';
return(name);
}
int main(){
char *tmp_name(void);
int i;
for(i = 0; i < 5; i++){
printf("Name: %s\n", tmp_name());
}
return (0);
}
入出力結果(Terminal)
$ cc -g -o sample sample.c $ ./sample Name: tmp1 Name: tmp2 Name: tmp3 Name: tmp4 Name: tmp5 $
0 コメント:
コメントを投稿