私は別のものに1つの配列をコピーするのmemcpyを扱っています:奇妙な挙動はmemcpyをと「エイリアス」
:ここでのコードは、実行がくれた.... /* s is a struct with int *t_con_cust; */
/* bad to use an equivalent name i guess ..*/
s.t_con_cust = malloc(nb_cust*sizeof(*s.t_con_cust));
int *t_con_cust = malloc(nb_cust*sizeof(*t_con_cust));
...
t_con_cust[0] = 1;
memcpy(s.t_con_cust, t_con_cust, nb_cust*sizeof(int));
fprintf(stdout, "s.t_con_cust[0] -> %d \n", s.t_con_cust[0]);
t_con_cust[0] = 0;
fprintf(stdout, "s.t_con_cust[0] -> %d \n", s.t_con_cust[0]);
(私も宣言ました)
s.t_con_cust [0] - > 1
s.t_con_cust [0] - > 0
あるbeyo ND私は、私はその
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
int *dest;
} lambda_struct;
int main(void) {
lambda_struct s;
s.dest = malloc(10*sizeof(*s.dest));
int *src = malloc(10*sizeof(*src));
int i;
for(i = 0; i < 10; ++i)
src[i] = 1;
memcpy(s.dest, src, 10);
fprintf(stdout, "dest[0] -> %d \n", s.dest[0]);
src[0] = 0;
fprintf(stdout, "dest[0] -> %d \n", s.dest[0]);
free(src);
free(s.dest);
return 0;
}
実行などの「サンプルコード」をしようとしたときので、私に期待される結果を与える - > 1と1
任意のアイデア?おかげ
'nb_cust'は0(または否定)ではありませんか? – pmg
ある時点で 't_con_cust'に' s.t_con_cust'を代入することができますか(またはその逆)、同じメモリを指し始めますか? –
'...'には何かがありますまたは両方のポインタ? –