ロブ·ボウデンは：こんにちは、私は、ロブ·ボーデンよ そしてそれではquiz0について話しましょう​​。
>> だから、最初の質問。
これは質問場所です あなたは番号をコード化するために必要な
バイナリ球根127。
あなたが望む場合は、可能性 定期的な変換を行う
bi--から、または、小数からバイナリへ。
しかし、それはおそらく起こっている 多くの時間を取る。
私は、あなたがそれを見つけ出すことができ、意味、 [OK]を、1は2がそこにある、そこにある、
図4は、8がそこにある、そこにある。
簡単な方法は、127は128から1を引いている。
その左端の電球は、128ビットである。
だから、127はちょうど、すべて実際にある 他の電球の、
それは左端のだから 電球マイナス1。
つまり、その質問はこれでおしまい。
>> 質問1。
あなたができる3ビットでそう 8個別の値を表している。
なぜ、その後、7最大の非負で あなたが表現できる進整数？
さて、唯一の私達ができる場合 8個別の値を表し、
その後、私たちがあることになるだろう 代表は0〜7です。
0のいずれかの値をとる。
>> 質問2。
nビットで、どのように多くの異なる 値は、あなたが表現することができますか？
したがって、nビットでは、2を有している ビットごとに指定可能な値。
だから我々は2の可能な値を持っている 最初のビット、2の可能な値
第二のために、2 第三の可能な。
そしてそうそれは2倍2倍2だし、 最終的に答えはnに2である。
>> 質問3。
バイナリで0x50のは何ですか？
だから進数が非常に持っていることを覚えている バイナリへの直接的な変換。
だからここ、私たちは見てする必要があり 5と独立して、0。
だから、バイナリで5何ですか？
0101、それは1ビットおよび4ビットです。
バイナリで0は何ですか？
トリッキーではない。
0000。
だから、それらを一緒に入れて、 それは、バイナリでの完全数です。
01010000。
あなたが望んでいる場合、あなたは可能性 その左端のゼロを脱ぐ。
それは無関係だ。
>> それでは代わりに、 進数で0x50のは何ですか？
あなたが望む場合は、している場合は、could-- バイナリより快適、
あなたはそのバイナリ答えを取ることができる と小数にそれを変換します。
または私達はただ覚えることができる その進。
0ようにすると、0番目の場所にあり、かつ 図5は、最初の場所に16である。
だからここでは、5〜16倍を持っている まず、ゼロにプラス0回16、
80です。
そして、あなたが見ている場合 質問へのタイトル、
それはのようなものだった、CS 80、だった この問題への答えへのヒント。
>> 質問5。
私たちは、このスクラッチスクリプトを持っている 4回ピーナッツバターゼリーを繰り返す。
では、どのようにC言語でコードになりましたことをやる？
まあ、我々は太字でhere--部分を持っている あなたが実装しなければならなかった唯一の部分である。
だから我々は4ループだ4ループを持っている 回、printfの - INGのピーナッツバターゼリー、
問題として持つ新しい行が要求されます。
>> 質問6、別のスクラッチの問題。
私たちは永遠にループしていることがわかります。
私たちは、変数iを言っている その後iを1だけインクリメントする。
今、私たちはCでありますことをやってみたい 我々はこれを行っている可能性が複数の方法。
ここでは、コーディングすることが起こった しばらく（真）として永遠にループ。
だから私たちは私はちょうど、変数を宣言 我々はスクラッチで変数iを持っていたような。
変数iを宣言し、永遠に （真）しながら、我々は変数iを言う。
printfの％i--たり、％dを使用していたかもしれないので。
私たちは、その変数を言うと、 それをインクリメント、私はC ++。
>> 質問7。
今、私たちは非常によく似た何かをしたい 問題からマリオドットcに1を設定します。
我々は、これらのハッシュタグを印刷したい、 私たちは5を印刷したい
これらのハッシュの3長方形で。
では、どのようにそれを行うつもりですか？
さて、私たちはあなたに全体を与える コー​​ドの束、そしてあなただけの
印刷グリッド機能に記入しなければならない。
>> だから何PrintGridは次のようになりません？
さてあなたは過ぎている 幅と高さ。
だから我々は、外側を持っている4 ループは、それがループだ
これのすべての行の上 私たちはプリントアウトしたいグリッド。
その後、我々は、インターネストされた4ループを持っている それは各列での印刷です。
だから、行ごとに、私達はのために印刷する 各列は、単一のハッシュ。
その行の終わりに、我々は印刷する 単一の新しい行が次の行に移動します。
そして、それはグリッド全体のためにそれだ。
>> 質問8。
PrintGridのような関数はと言われている リターン副作用がないの
値。
区別を説明してください。
だから、これは覚えてあなたに依存しています 副作用は何であるか。
さて、復帰value-- 我々はPrintGridにはない知っている
ので、戻り値を持つ 右ここでそれは無効と述べています。
voidを返すので、何でも 本当に何も返しません。
だから、副作用は何ですか？
さて、副作用である ソートの持続するもの
機能終了後 それは、単に返されませんでした
そしてそれだけで入力からではなかった。
>> したがって、たとえば、我々は、可能性がある グローバル変数を変更します。
つまり副作用であろう。
この特定のケースでは、A 非常に重要な副作用
画面に印刷されている。
だから副作用である PrintGridが持っていること。
私たちは、画面にこれらの事を印刷してください。
そして、あなたは考えることができます その副作用として、
それはその何かだから この関数は終了後に持続する。
つまり、スコープ外の何か 最終的にはこの関数の
変更され、 画面の内容。
>> 質問9。
以下のプログラムを考え、 どのライン番号へ
追加されました 議論のために。
したがって、このプログラムの中で私達はちょうどです それを保存、のGetStringを呼び出す
この変数sで、その後、 その変数s印刷。
[OK]をクリックします。
ライン1が存在している理由をそう説明する。
インクルードCS50ドット時間。
なぜ我々はCS50ドットhのを#i​​ncludeする必要がありますか？
まあ我々は呼んでいる のGetString機能、
とのGetStringが定義されている CS50ライブラリ内の。
だから我々は持っていなかった場合は、 の#include CS50ドットhの、
我々はその暗黙的な宣言になるだろう のGetString関数エラーの
コンパイラから。
だから我々はlibrary--を含める必要が 我々はヘッダファイルをインクルードする必要があり、
あるいはコンパイラはしません のGetStringが存在することを認識しています。
>> ライン2が存在する理由を説明する。
だから、標準入出力ドット時間。
それはまったく同じだ 以前の問題として、
代わりに対処するのを除いて のGetString、我々はprintfの話をしている。
だから我々は我々が必要と言っていなかった場合 標準IOドットhを含めるには、
その後、我々はできないだろう printf関数を使用するには、
コンパイラ理由 それについて知っているだろう。
>> Why--意義は何ですか ライン4におけるボイドの？
そこでここではint型メイン（ボイド）がある。
それはちょうど、その私たちを言っている 任意のコマンドラインを取得されていません
主への引数。
我々はint型を言うことができることを忘れないでください メインint型のargc文字列ARGVブラケット。
そこでここでは、単に私たちに言っても、ボイド言う コマンドライン引数を無視している。
>> 正確に、メモリに関しては、説明 ライン内の何のGetString 6に戻ります。
のGetStringは、ブロックを返して メモリ、文字の配列。
それは本当に戻っています 最初の文字へのポインタ。
文字列はchar型の星であることを覚えておいてください。
だから、sが最初にへのポインタである 文字列が何であれ、文字
ユーザーがキーボードで入力されたもの。
そのメモリはmallocされるようなことが起こる、 その結果、メモリはヒープ内である。
>> 質問13。
以下のプログラムを考えてみましょう。
だから、このすべてのプログラムがやっている 10で割ったのprintf - INGの1がある。
だから、コンパイルされたとき 実行され、このプログラム
出力は0.0、たとえ 10で割って1が0.1である。
では、なぜそれが0.0である？
まあ、これは理由である 整数除算の。
だから1は10の整数であり、整数である。
だから1すべて、10で割った 整数として扱われ、
とCで、我々は整数の除算を行うときに、 我々はすべて小数点以下を切り捨てる。
だから、1 10で割っている 0、その後、我々はしようとしている
そう、floatとしてそれを印刷する floatとして印刷されたゼロは0.0です。
我々は0.0を取得した理由、それはです。
>> 以下のプログラムを考えてみましょう。
今、私たちは0.1を印刷している。
だからなし整数除算、 私達はちょうど0.1を印刷している、
しかし、我々はそれを印刷している 28小数点以下まで。
そして、我々はこの0.1000、全体の束を取得 ゼロの、5 5 5、何とか何とか何とか。
それをしない理由ので、ここで質問です ことを、代わりに正確に0.1印刷？
>> だからここに理由が今ある 浮動小数点の不正確。
フロートが唯一の32ビットであることを覚えておいてください。
だから我々は唯一の有限数を表すことができます 業者32と浮動小数点値
ビット。
まあ、最終的には無限にあります 多くの浮動小数点値、
と浮動多くは無限にあります 0と1の間のポイント値、
そして我々は明らかにすることができるしている それよりも多くの値を表す。
だから我々はに犠牲をしなければならない ほとんどの値を表現することができる。
>> だから、0.1のような値、どうやら 我々はそれを正確に表すことはできません。
だからではなく、0.1を表現致しております 最高の私たちは、この0.100000 5を表すことができます
5。
そして、それはかなり近いですが、 多くのアプリケーションのための
あなたが心配する必要は 浮動小数点の不正確さ、
我々だけで表すことはできませんので、 すべての浮動ポイントを正確に。
>> 質問15。
以下のコードを考えてみましょう。
私達はちょうど1プラス1を印刷している。
だから、ここにはトリックはありません。
1プラス1が2と評価され、 それから私達はそれを印刷している。
これは単に2を印刷します。
>> 質問16。
今、私たちは、文字を印刷している 1プラス1文字。
では、なぜこのません 同じことを印刷？
さて、文字1文字プラス 図1は、文字1はASCII値49を有している。
だから、これは本当に49プラス49を言っている、と 最終的にはこれが98を印刷しようとしている。
だから、これは2を印刷しません。
>> 質問17。
実装を完了します そのような方法で、下記の奇数
関数は、以下の場合にtrueを返すこと nが偶数の場合nが奇数とfalseです。
これは素晴らしい目的です mod演算子のために。
だから我々は我々の引数nを取り、 n個のmod 2がウェル1に等しい場合
それは、n分割することを意味します 2で、残りを持っていた。
nは、2で割った場合は、残りの部分を持っていた nが奇数であるので、我々は真を返すことを意味します。
ほかに、我々はfalseを返します。
また、2等号をmod nを行っている可能性が ゼロは、他に、falseを返すtrueを返す。
>> 下記の再帰関数を考えてみましょう。
だから、nが以下である場合 1戻り、1に等しく、
n個のfの他にリターンn回マイナス1。
この関数は何ですか？
まあ、これはただです 階乗関数。
これがうまく表現されている n個の階乗として。
>> だから我々がしたい、今19を疑問視 この再帰関数を取る。
我々は、それが反復的にしたい。
だから我々はそれをどのように行うのですか？
よくスタッフのための ソリューションは、再度あります
あなたが行っている可能性が複数の方法 それが、我々はこのint型の製品で始まる
1に等しい。
そして、この全体 forループ、我々はつもりだ
最終的に製品を掛けるべき 完全要因で終わる。
int型のためにiが2に等しいだから、私はある n以下は、私は++。
>> iが2に等しいなぜあなたは不思議に思われるかもしれません。
さて、ここで私たちがしなければならないことを覚えている 私たちのベースケースが正しいことを確認してください。
そこで、nが以下である場合 1に、私達はちょうど1を返している。
だからここの上に、我々はiが2に等しいから始まります。
さて私は1であったならば、the--か nが1であった場合、forループ
まったく実行しないであろう。
だから私達はちょうどだろう 1であるリターン製品。
同様に、nがあった 1--未満のもの
それが0であった場合には負の1、whatever-- 我々はまだ、1を返すことだろう
まさにこれです 再帰的なバージョンがやっている。
>> ここで、nが大きい場合 1よりも、我々はつもりだ
少なくとも一つを行うには このループの繰り返し。
それでは私たちがしている、のnが5であるとしましょう 製品の時間をするつもりは、2に等しい。
だから今の製品は2です。
今、私たちはやろうとしている 製品時間は3に等しい。
今では6です。
製品の倍になりましたそれは24だ、4に等しい。
製品の回今では120ですが、5に等しい。
それでは最終的に、我々は戻っている 正しく5階乗である120、。
>> 質問20。
これは、あなたが入力する必要が1である 任意のアルゴリズムを用いて、この表の、
私たちが見てきたもの、その これらのアルゴリズムの実行にフィット
回これらの漸近実行時間。
だから、そのアルゴリズムは何ですか 1のオメガが、n個の大きなOで？
だから、無限にある可能性があり ここに多くの答え。
我々は、おそらく最も見てきた1 頻繁にちょうど線形検索です。
>> 最良のケースで非常に シナリオ、我々はしているアイテム
を探しているである リストの先頭
したがって1ステップのオメガで、 我々はチェックまず最初、
私達はちょうどすぐに戻り 私達が項目を見つけたこと。
最悪の場合、 項目は、最後にあり
またはアイテムが全くリストにありません。
だから我々は検索する必要が リスト全体、すべてのn
要素、およびそれがn個のOが理由です。
>> だから今、それは両方だ何か n個のログのωn、およびnはログnの大きなO。
さて、最も関連性の高いもの 私たちはここで見てきたソートマージである。
だから、マージソート、覚えている、 最終的にはシータです
シータが定義されているn個のログnの オメガとビッグOの両方が同じである場合。
両方N Nをログに記録します。
>> オメガの何か何ですか n個の、nがOの二乗？
さて、再びそこだ 複数の可能な答え。
ここでは、バブルソートを言うために起こる。
挿入ソートもここで働くだろう。
そのバブルソートを覚えている その最適化はどこにあります、
あなたが得ることができる場合 リスト全体を通して
何を必要とせず どんなスワップ、その後、よく、
我々はすぐにそれを返すことができます リストはそもそもソートした。
そこで最良のシナリオにおいて、 それはちょうど、オメガ、nのだ。
それだけでうまくはない場合 そもそもリストをソートし、
次に我々は、nのOがスワップを二乗している。
そして最後に、私たちは選択ソートを持っている nに、オメガとビッグOの両方を乗
>> 質問21。
整数オーバーフローとは何ですか？
さて、再び、以前と同様に、 我々は唯一の有限個のビットを持っている
整数を表現する、 ので、多分32ビット。
それでは私たちは符号付き整数があるとしましょう​​。
そして、最終的に最も高い 私たちが表現できる正の数
ある2から31のマイナス1。
私たちがしようとした場合に何が起こる その整数をインクリメント？
さて、私たちは2から31に行くつもりだ マイナス1、ダウン負2へのすべての道
31。
したがって、この整数のオーバーフローがある あなたがインクリメント保つとき、
そして最終的にあなたがすることはできません ただの高く、かつそれを得る
すべての道バックラップ 負の値に周り。
>> バッファオーバーフローはどう？
だから、バッファoverflow-- バッファが何であるかを覚えています。
これは、メモリのほんのチャンクです。
配列のようなものがバッファです。
だから、バッファオーバーフローがあるとき あなたは、メモリにアクセスしよう
その配列の末尾を越えて。
だから、あなたが持っている場合 サイズ5、あなたの配列
配列ブラケットにアクセスしようとする 5またはブラケット6またはブラケット7、
か何かを越えて 最後、あるいは何か
負below--アレイ·ブラケット1-- それらのすべてがバッファオーバーフローである。
あなたが悪いかの方法でメモリに触れている。
>> 質問23。
あなたが必要とするこの1中のSO のstrlenを実装する。
そして、我々はあなたができることを教えてくれ sがnullにすることはできませんと仮定し、
そうあなたがする必要はありません ヌルのための任意のチェックを行う。
そして、複数の方法があります あなたはこれを行っている可能性があります。
ここでは、ただ単純明快を取る。
我々はカウンターで始まり、n個。 nは ある文字数カウント。
だから我々は0から始まり、その後、私たち リスト全体を反復処理。
>> Sブラケット0に等しい ヌル終端文字？
私たちが探している覚えている ヌル終端文字
私たちの文字列がどのくらいかを決定する。
つまり、終了しようとしている 関連するすべての文字列。
だからSブラケット0が等しい NULL終止符？
そうでない場合は、我々はするつもりだ Sブラケット1、Sブラケット2を見てください。
私達は私達まで続ける ヌルターミネータを見つける。
我々はそれを見つけたら、次にnが含まれています 文字列の長さの合計、
私たちはまさにそれを返すことができます。
>> 質問24。
だから、これは1つのどこにある トレードオフを確認する必要があります。
だから、一つのことは、一つに良いです 方法があるが、どのような方法でそれが悪いのですか？
だからここに、マージソートする傾向 バブルソートよりも高速。
よく、そこにthat--言っても 複数回答はここにある。
しかし、主な1は、そのバブルソートです ソートされたリストのためのnのオメガです。
>> 我々だけで前に見たそのテーブルを覚えています。
だからバブルはオメガをソート nは、最良のシナリオ
それだけでオーバー行くことができますです 一度リスト、決定
ちょっとこの事は既にある ソートされ、リターン。
どんな、マージソートません あなたは、n個のログnのオメガです。
だから、ソートされたリストについては、バブル ソートより速いことになるだろう。
>> 今何リンクリストはどうですか？
だから、リンクリストが成長し、縮小することができます 必要な数の要素を合わせて。
そうthat--言っても 通常、直接比較
リンクされようとしている 配列を持つリスト。
そうであってもアレイができますが 簡単に成長し、縮小
など多くの要素を合わせて 必要に応じて、リンクリストなど
array-- ANに比べ アレイは、ランダムアクセスを有する。
私たちはどんなへのインデックスができます 配列の特定の要素。
>> だから、リンクリストのために、我々はできない ちょうど5番目の要素に移動し、
私たちは最初から横断する必要が 私たちは第5要素に到達するまで。
そして、それはから私たちを防ぐために起こっている バイナリサーチのようなものをやって。
バイナリサーチといえば、バイナリサーチ 線形検索よりも速くなる傾向にある。
that--言っても そう、一つの可能​​な事
あなたがバイナリを実行することができないということです リンクリストの検索、
あなただけのアレイ上でそれを行うことができます。
おそらくより重要なことに、 あなたがバイナリ検索を行うことはできません
ソートされていないアレイ上。
Upfrontのあなたはソートする必要があるかもしれません アレイと、その場合にのみ、
あなたは、バイナリ検索を行う。
だから、あなたのものでない場合 そもそもソート、
線形検索は速くなるかもしれません。
>> 質問27。
だから、下のプログラムを考え、 その次のスライドになります。
そして、これは私たちがしている一つです 明示的に指定したいだろう
さまざまな変数の値。
それでは、その見てみましょう。
>> だから、1行目。
我々は整数、xは1に等しいがある。
それは起こっただけのことだ。
だから、行1で、私たちは私たちの中で参照してください。 テーブル、すなわちyは、a、bおよびtmpがすべてである
ブラックアウト。
だから、xは何ですか？
まあ我々はちょうどそれは1に等しくなるように設定。
して、行2、よく、 我々は、yは2に設定されていることがわかる
テーブルがすでにある 私たちのために記入。
そこで、xは1であり、yは2である。
>> さて、ライン3、我々は今だ スワップ関数内。
私たちは、スワップに合格しましたか？
私達はのためにアンパサンドxを渡す bについて、およびアンパサンドyを。
どこに問題が早く のように述べているxのアドレス
が0x10であり、yのアドレス0x14にある。
そこで、bは等しい それぞれの0x10と0x14に、。
>> 今行3で、xとyは何ですか？
まあ、何も変わっていない この時点で、xおよびyは約。
彼らがしているにもかかわらず メインスタックフレームの内側、
彼らはまだ同じを持っている 彼らは前にやった値。
私たちは、任意のメモリを変更していない。
そこで、xは1であり、yは2である。
わかりました。
だから今、私たちは星に等しいint型のtmpが言った。
だから、ライン4、すべてのもので TMPを除いて同じである。
私たちはどんな値を変更していない tmpのため除いて何の。
私たちは星に等しいTMPを設定している。
スターaは何ですか？
さて、ポイントはxに、だからスター 1であるに等しいのx、しようとしている。
だから、すべてがコピーされます ダウン、そしてtmpには1に設定されます。
>> 今すぐ次の行。
スターaはスターBに等しい。
だからラインによって、再びうまくすべてをfive-- スターaは何を除いて同じである。
スターaは何ですか？
さて、私たちは星のaはXであることを特徴とする。
だから我々は同じ星bにxと変更している。
スターbは何ですか？ Y。 yにBポイント。
だから、星bはyです。
だから我々はyに等しいxを設定している、 そして他のすべてが同じです。
だから我々は、xが今であることを次の行に表示 2、残りは単にダウンコピーされる。
>> 今すぐ次の行に、スターbはTMPに等しい。
さて、私たちは星bはYであることを特徴とする、 私たちはtmpに等しいyと設定している。
他のすべてが同じであり、 そうすべてがダウンしてコピーされます。
私たちはあるtmpに、に等しいyと設定している 1、および他のすべてが同じです。
>> さて最後に、ライン7。
我々は戻っメイン関数にしている。
スワップが終了した後に私たちはいる。
私たちは、Bを失い、き TMPが、最終的に我々
どんな値を変更されていません この時点では何の、
私達はちょうどxとyを下にコピーします。
そして、我々は、xとyがあることがわかり 今2と1ではなく1と2。
スワップが正常に実行されました。
>> 質問28。
あなたが遭遇すると仮定 エラーメッセージ
営業時間中に下記 CAまたはTFとして来年。
これらのエラーのそれぞれを修正する方法を助言する。
のGetStringにとても未定義参照。
なぜあなたはこれが表示されることがあります？
さて、学生が使用している場合 自分のコード内のgetString、
彼らは正しく含まCS50をハッシュしている ドットhはCS50ライブラリを含めます。
>> さて、彼らが何をすべきか このエラーを修正する必要がありますか？
彼らは、ダッシュlcs50を行う必要があります 彼らはコンパイルしているコマンドライン。
だから、彼らが通過しない場合は、 打ち鳴らすダッシュlcs50、彼らがしている
実際に持っているつもりはない のGetStringを実装するコード。
>> 質問29。
暗黙的に宣言 ライブラリ関数のstrlen。
さて、これは今、彼らはそうではありません 適切なハッシュを行っています。
この特定のケースでは、ヘッダファイル 彼らは、文字列のドットhでインクルードする必要があり、
そして今、文字列のドットhを含む 今student--コンパイラ
へのアクセス権を持っている strlen関数の宣言、
そしてそれはあなたのコードを知っている strlenを正しく使用しています。
>> 質問30。
もっとパーセントの変換 データ引数より。
だから、これは何ですか？
さて、これらのパーセントがあることを覚えている 彼らはprintfのに関連しているかをsigns--。
だからprintfの中で私たちはpercent--かもしれません 私たちは何かを印刷するかもしれない
パーセントように私はnのスラッシュ。
または私達は、パーセント私のように印刷することがあります スペース、パーセントI、スペース、パーセントのi。
これらのそれぞれについて、そのように パーセント記号は、我々は必要とする
のprintfの終わりに変数を渡すことができます。
>> だから、私たちが言う場合は、printfの括弧パーセント 私は、括弧閉じnのスラッシュ
よく、私たちはしていると言う 整数を印刷しようとして、
しかし、その後、我々はprintfのを渡さない 実際に印刷する整数。
だからここにもっとパーセント データ引数よりもコンバージョン？
それは我々が持っていることを言っている パーセントの全体の束、
そして我々は十分な変数を持っていない 実際にそれらのパーセントで埋めるために。
>> その後、間違いなく、質問31のため、 間違いなく1ブロックに40バイトを失った。
だから、これはValgrindのエラーです。
これはと言っている あなたのコード内のどこかに、
あなたは40で割り当てを持っている あなたが40バイトをmallocさせ、大きなバイト、
そして、あなたはそれを解放したことはありません。
あなただけの必要性が最も高い いくつかのメモリリークを見つけるために、
そしてあなたがする必要がどこに見つける このメモリブロックを解放。
>> そして、32を疑問視 サイズ4の無効書き込み。
これもValgrindの誤差がある。
これは行う必要はありません 今メモリリークを持つ。
これは私が意味likely--ほとんどが、それはだ、である 無効なメモリの権利のいくつかの並べ替え。
そして最も可能性が高いこれはいくつかある バッファオーバーフローの一種。
あなたは多分、アレイを使用している 整数配列、およびレッツ
それはサイズが5だと言う、そしてあなた アレイ·ブラケット5に触れてみてください。
だから、あなたがそれに書き込みをしようとした場合 値は、それはメモリの一部ではありません
実際にへのアクセスを持ち、こと だから、このエラーを取得するつもりだ、
サイズ4の無効な書き込みを言って。
Valgrindはあなたがしている認識しようとしている 不適切メモリに触れるしようとしています。
>> そして、それはquiz0のためにそれだ。
私はロブ·ボウデンだし、これはCS50です。