- ベストアンサー
C言語です。コレを使ってなにかプログラミングを組んでください
C言語です。コレを使ってなにかプログラミングを組んでください よろしくお願いします 何でも構いません #include<stdio.h> void str_copy( char dst[], char src[] ) { int i; for (i =0; src[i] != '\0'; i++) { dst[i] = src[i]; } dst[i]= '\0'; }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#include<stdio.h> void str_copy( char dst[], char src[] ) { int i; for (i =0; src[i] != '\0'; i++) { dst[i] = src[i]; } dst[i]= '\0'; } void main(int argc, char * argv[]) { char dst[10]; char *src = "ABCDEFGHIJKLMNOPQR" ; str_copy(dst,src); } これは、たぶんSEGMENTATION FAULTになるでしょう。 なぜなら、あなたのstr_copyはdstがsrcに等しいか大きいことを期待しているからです。 これが、脆弱性と言われている、ウイルスの攻撃で侵入される元なのです。 str_copyのdstは長さを指定して、dstにsrcをdstの長さ-1まで複写するのが脆弱性のないソースになります。
その他の回答 (1)
- longagodsg
- ベストアンサー率50% (1/2)
あなたの載せているプログラムの添削をしてほしいということですか? ちがうなら私の課題で出てたプログラムをどうぞ(゜-゜) /* 二次方程式 ax*x+bX+cの各係数a,b,cを入力し、解xが重解、実数解、虚数解 のどれになるか判別するプログラム */ # include<stdio.h> main () { int a,b,c,x; printf("a,b,cを入力してください\n"); scanf("%d %d %d" ,&a,&b,&c); printf("\na=%d b=%d c=%d",a,b,c); x=b*b-4*a*c; if(x==0){ printf("重解です\n"); } else if(x>0){ printf("実数解です\n"); } else{ printf("虚数解です\n"); } return(0); }
補足
分かりづらくてすみません 文字列のコピーです
お礼
ありがとうございました ご丁寧に解説まで、恐れ入ります。