ポインタあたりでものすごく躓いてます。
例えば、ある関数に引数として渡すデータをポインタとした時に、どうやって渡せばいいんだっけと悩んでしまう。
そしてこんなふうな間違いを犯す。
#include <stdio.h>
#include <string.h>
void cat(char *);
int main(void)
{
char* str;
memset(str, 0x00, sizeof(str));
cat(str);
return 0;
}
memset()で初期化処理を行うのはまぁいいとして、メモリを確保してないのにどうやってstrのサイズで0x00で埋めるつもりなのだろうか・・。
こういう時こそ、実は今までよくわかっていなかったmalloc()を使うべきところなのだ。
#include <stdio.h>
#include <string.h>
void cat(char *);
int main(void)
{
char* str;
str = (char *)malloc(10);
memset(str, 0x00, sizeof(str));
strcpy(str,"aaaabbbbc");
cat(str);
return 0;
}
これも完全にコピペでコーディングしてきたツケだと本当に思う。