我是新来的,这是我的第一个问题,我在搜索引擎中找不到这样的东西,所以我的问题基本上是C上的向量矢量,这是我所做的直到现在,但我一直收到一个致命的警告,所以我知道我没有很好地使用矢量结构,我真的很感激一些帮助。
由于
PD:抱歉我的英文。#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int n;
int *vector;
}Vector_T;
int inicializar_original(int *n,int dim)
{
int i,r,s,j,*k;
Vector_T *t;
Vector_T l;
srand(time(NULL));
r=rand()%10;
scanf("%d",&s);
t->vector=k;
l.n=s;
k=(int*)malloc(s*sizeof(int));
for(j=0;j<s;j++)
{
k[j]=r;
}
for(i=0;i<dim;i++)
{
n[i]=k;
}
}
int main()
{
int *v,dim;
scanf("%d",&dim);
v=(int*)malloc(dim*sizeof(int));
inicializar_original(v,dim);
}
答案 0 :(得分:0)
Asumo quehablasespañol,asíqueagíva:Elproblemamásgrandees quenoestásinicializandola variable“k”。 Mi sugerencia es que intentes lo siguente:
int i,r,s,j;
int* k;
如果只有英文:您的问题可能是您正在以错误的方式初始化K.尝试做:
int i,r,s,j;
int* k;
答案 1 :(得分:0)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef struct {
int n;
int *vector;
}Vector_T;
int inicializar_original(Vector_T *v, int dim){
int i, j, s, r = rand()%10;
scanf("%d", &s);
for(i=0; i<dim; i++){
int *k = malloc( s * sizeof(int));
for(j=0; j<s; j++){
k[j]=r;
}
v[i].n = s;
v[i].vector = k;
}
}
int main(void){
Vector_T *v;
int dim;
srand(time(NULL));
scanf("%d", &dim);
v = malloc(dim * sizeof(*v));
inicializar_original(v, dim);
{ //check print & release
int i, j;
for(i = 0; i < dim; ++i){
for(j = 0; j < v[i].n ; ++j){
printf("%d ", v[i].vector[j]);
}
puts("");
free(v[i].vector);
}
free(v);
}
return 0;
}