#1
by あまつ » 8年前
このプログラムでは"あいうえお"に必要な11バイトの領域をmallocで確保しています。が、2バイトや3バイトでもERRORが発生せず、出力されます。わかる方がいましたら教えてください。お願いしますm(_ _)m
コード:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char *memo;
memo = (char *)malloc(11);
if(memo == NULL) {
printf("メモリが確保できません\n");
}else{
strcpy(memo,"あいうえお"); //2バイト × 5 + null文字 = 11バイト
printf("%s\n",memo);
}
free(memo);
}
このプログラムでは"あいうえお"に必要な11バイトの領域をmallocで確保しています。が、2バイトや3バイトでもERRORが発生せず、出力されます。わかる方がいましたら教えてください。お願いしますm(_ _)m
[code=C]#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char *memo;
memo = (char *)malloc(11);
if(memo == NULL) {
printf("メモリが確保できません\n");
}else{
strcpy(memo,"あいうえお"); //2バイト × 5 + null文字 = 11バイト
printf("%s\n",memo);
}
free(memo);
}[/code]