No.1
- 回答日時:
scanfの第2引数はポインタなのでアドレスを渡しているだけです。
長さの管理はしません。ですから取り込む文字の長さなどはプログラマが管理しないとバグの原因となります。
たまたまprintfで表示できただけと思ってください。
No.2ベストアンサー
- 回答日時:
そんなことは絶対にありません。
たまたま「運がよかった」だけです。書式に "%as" とすると読み込んだ文字列分の長さを malloc() して返してくれますので、長さを気にする必要がない分助かります。free() するのを忘れないように。処理系依存だったかな?
#include <stdio.h>
#include <malloc.h>
char *ss;
scanf( "%as", &ss );
printf( "ss=%s?n" ss );
free( ss );
No.3
- 回答日時:
いいえ。
たまたまssの直後のメモリが空き領域だったか、壊れても影響が見えないようなところだったか、というだけです。
10文字を大幅に超える文字数を入力すると動作が変になるとおもいますよ。
No.4
- 回答日時:
処理系が書かれていないので、あくまで参考情報としてですが...
自動記憶域期間を持つオブジェクトをスタック上に割付ける場合、スタック操作を簡便にするために、通常は16~64ビット境界に整列するように配置します。
今回の場合、配列の要素数は10ですが、境界調整の関係上、2バイト以上余分に領域を割付けている可能性が高いと思います。結果として、少しぐらいはみ出しても、何事もなかったかのように振舞います。
もちろん、これは完全にコンパイラの実装に依存しますので、移植性もなければ、(コンパイル結果を管理するのでない限り)何の動作保証もありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- マウス・キーボード 中2でタイピングで10分間に1200文字は遅いほうですか? 1 2022/08/10 14:55
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- PHP 【スプレッドシート】順位のつけ方 2 2022/08/17 13:27
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c言語のポインタへの文字列入力...
-
newしないオブジェクトについて
-
mallocについて
-
GlobalAlloc について
-
構造体へのポインタの動的確保...
-
ヒープ領域の限界値設定
-
構造体でchar name[]と*nameの...
-
malloc呼び出し時のセグメンテ...
-
gcnew arrayによるメモリ確保に...
-
callocの処理速度
-
メモリ不足になってしまう。
-
配列の添え字の最大数とは?
-
入れ子になった構造体について
-
C言語 mallocとfreeについて
-
mallocで確保するメモリの領域...
-
構造体を使ったファイルの読み込み
-
仮想メモリでない環境でのmallo...
-
構造体配列の初期化について
-
CでOpenMP、パラレル内での共有...
-
x64環境で連続4GB以上のメモリ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mallocについて
-
c言語のポインタへの文字列入力...
-
allocってなんですか?
-
newしないオブジェクトについて
-
ヒープメモリの解放について
-
C++で、メンバもヒープに確保さ...
-
MSDNがgethostbynameではなくge...
-
プログラムが途中で強制終了し...
-
配列の添え字の最大数とは?
-
Accessで、メモリを開放するタ...
-
malloc呼び出し時のセグメンテ...
-
ヒープ領域の限界値設定
-
スタック破壊の上手な見つけ方...
-
C言語 mallocとfreeについて
-
指定したメモリアドレスの値の...
-
stringの最大サイズ
-
16進ダンプのプログラム
-
入れ子になった構造体について
-
64ビットと32ビットの違い
-
free関数で動作が止まる
おすすめ情報