
C++の参照を使って以下のソースを試したのですが、
memmoveの引数のところでエラーが出ます。
memmoveの引数はポインタ型で合いません。
実体コピーしたい場合、どのようにすればよいのでしょうか?
const AA &aとすれば、a自体が関数内で書き換わる心配がないので、
C++の参照型は、ポインタより安全と理解しているのですが
その認識は間違っていないでしょうか?
struct aa{
int x;
int y;
}AA;
void test(AA &a)
{
AA b;
memmove(b, a, sizeof(AA));
}
void main(){
AA c;
test(c);
}
No.1ベストアンサー
- 回答日時:
> 実体コピーしたい場合、どのようにすればよいのでしょうか?
単純に代入する。
void test(AA &a)
{
AA b;
a = b;
}
(今回の例なら大丈夫ですが)C++でmemcpyとかmemmoveとかをむやみに使うと危険だと思います。(C言語の遺産です)
なお、memmoveの引数はポインタを渡す必要があります>マニュアル参照。
> const AA &aとすれば、a自体が関数内で書き換わる心配がないので、
これはそう。
> C++の参照型は、ポインタより安全と理解しているのですが
でも、ポインタでも const AA* const aなどできるので、
直接の理由にはならない。
> その認識は間違っていないでしょうか?
ゆえに、間違いを含んでいる。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 関数ポインタの高速化のメリット 7 2023/05/05 20:15
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- その他(プログラミング・Web制作) pythonのmap、結果の利用は1度だけ? 5 2022/06/11 12:33
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
- C言語・C++・C# 未解決の外部シンボル _printfが関数_mainで参照されました 1 2022/09/18 15:28
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# C pointer? or... 2 2022/03/29 00:47
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
init関数の意味
-
fopne で失敗する原因
-
セグメントエラー
-
C++で関数ポインタから関数名を...
-
Run-Time Check Failure #3とい...
-
C言語のポインタに直接アドレス...
-
【C言語】戻り値が構造体の関数
-
c言語で任意のファイルから読み...
-
ExcelVBAでのkernel32(64bit)
-
【VC++2005(CLR)】マルチスレッ...
-
VC6.0で作ったライブラリをVBで...
-
VBはCを混乱させる?
-
bsearch関数の呼び出しで
-
アプリを32bitから64bit移行
-
sizeofについて
-
VB6でポインタ?
-
デバイスハンドルとは?
-
C言語、配列とポインタとアスタ...
-
パスからファイル名を抽出
-
ハンドルはポインタか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セグメントエラー
-
C言語のポインタに直接アドレス...
-
init関数の意味
-
Run-Time Check Failure #3とい...
-
戻り値で構造体を返すことは可...
-
ExcelVBAでのkernel32(64bit)
-
アプリを32bitから64bit移行
-
参照型で受け取った引数をポイ...
-
fopne で失敗する原因
-
PASCALとFARの意味
-
LPSTR型の初期化について
-
CWnd::EnableWindow()の扱い方
-
ポインタについて
-
プーさんのマウスポインタを教...
-
連結リスト 要素の入れ替え
-
ハンドルはポインタか
-
C++で関数ポインタから関数名を...
-
自作DLLの引数について、ポイン...
-
NULLポインタが0でない処理系と...
-
TCHAR文字列内の検索について
おすすめ情報