こんなケースで、ちゃんと代入されるでしょうか? – プログラミング – Home

こんなケースで、ちゃんと代入されるでし...
 
通知
すべてクリア

こんなケースで、ちゃんと代入されるでしょうか?


ty
 ty
(@ty)
ゲスト
結合: 21年前
投稿: 16
Topic starter  

int a[100][20];
int b[100][20];
int c;
int L1;
int L2;

int Function();

if (c == 1)
Function;

int Function()
{
for (L1=0;L1<100;L1++)
for (L2=0;L2<20;L2++)
b[L1][L2] = a[L1][L2];

return 0;
}


引用解決済
トピックタグ
RAPT
 RAPT
(@RAPT)
ゲスト
結合: 23年前
投稿: 310
 

各変数のスコープ(有効範囲)による。
このくらいだったら、memcpy()使った方が楽だと思うが。
memcpy(b, a, sizeof a);


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

各コードのスコープがわかるようにソースを提示してくれないとなー。

内容からするとそこまで長いソースとも思えないし、
ソースだけを放り込むような質問し方をするのであれば、
きちんとビルドまで出来るレベルのソースを提示した方が話が早いです。
特に何処まで省略していいかの判断がつかないような場合は。


返信引用
WOOD
 WOOD
(@WOOD)
ゲスト
結合: 23年前
投稿: 895
 

>int Function();
>if (c == 1)
> Function;
いきなり、コンパイルエラーだろ!


返信引用
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

デバッガや、printf()/MessageBox()を使う等して
まずはご自身で確認した方が良いでしょう
その結果、思っている動作や出力を得られなければ
結果を添えて質問をしてはどうでしょうか

b[L1][L2] = a[L1][L2];
という所でL1とL2の値の確認と、代入されたb[L1][L2]を確認するなどで、
確かめてください
100x20のテーブルは確認が面倒なので
最初は10x2でやってみるとか、5x2とか、そんな方法もあります


返信引用
...
 ...
(@...)
ゲスト
結合: 22年前
投稿: 113
 

#include <stdio.h>

int func();

int main()
{
func;

printf(not compile error\n);
return 0;
}


返信引用
...
 ...
(@...)
ゲスト
結合: 22年前
投稿: 113
 

VS.NET 2003


返信引用
たく
 たく
(@たく)
ゲスト
結合: 23年前
投稿: 37
 

火フ


返信引用
とおりすがり
 とおりすがり
(@とおりすがり)
ゲスト
結合: 23年前
投稿: 180
 

>いきなり、コンパイルエラーだろ!

せいぜい、警告どまりでは?
関数ポインタだし。


返信引用
アイススケーター
 アイススケーター
(@アイススケーター)
ゲスト
結合: 23年前
投稿: 280
 

実際やってみました。警告でした。

if (c == 1)
Function(); //<--

としましょう


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

で、ご本人はいずこへ??


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました