Articles of punteros

¿Cuál es el tipo de puntero de una matriz multidimensional cuando se pasa a una función?

Estoy aprendiendo C y punteros en mi clase de la universidad, y creo que tengo un buen conocimiento del concepto, excepto por la similitud entre matrices multidimensionales y punteros. Pensé que dado que todas las matrices (incluso las multidimensionales) se almacenan en la memoria continua, se podría convertir de forma segura en un int* (suponiendo […]

¿Cuál es la diferencia entre el puntero flotante y la dirección del puntero int?

Traté de ejecutar este código, int *p; float q; q = 6.6; p = &q; Aunque será una advertencia, pero creo que &q y p son del mismo tamaño, por lo que p puede tener una dirección de q . Pero cuando imprimo &q obtengo resultados diferentes. Esta es mi salida *p = 6.600000 q […]

Cadena inversa utilizando punteros.

Estoy tratando de revertir una cadena usando punteros. Cuando bash imprimir la cadena invertida en lugar de obtener DCBA, salgo solo como BA. ¿Alguien puede ayudarme en esto? #include void reverse(char *); void main() { char str[5] = “ABCD”; reverse(str); } void reverse(char *str) { char *rev_str = str; char temp; while(*str) str++; –str; while(rev_str […]

Escribiendo el puntero de char como miembro de la estructura para el problema

Tengo un miembro de estructura como un caracter * y lo asigno a un literal “John” en la inicialización de la estructura como se muestra a continuación. La cadena se imprime bien con printf. Sin embargo, si escribo esta cadena en un archivo usando fwrite, en el archivo leo basura. Si uso una matriz char […]

¿Cómo se rellena un puntero de estructura con una referencia de estructura global dentro de una función C?

Soy nuevo en C y tengo problemas para entender por qué my_struct_ptr (main) es nulo en el siguiente ejemplo. ¿Cómo asignaría la dirección de una estructura en la matriz my_structs al puntero my_struct_ptr dentro de la función get_my_struct_by_name? struct my_struct { char *name; char *descr; char *value; } my_structs[3] = { {“a”, “a description”, “value […]

¿Cómo asignar valor a una matriz 2d de referencia en c?

int max(int x,int y){ if(x>=y) return x; else return y; } int calci(int i,int j,int n,int *c){ int k,y,m; k=j; y = (n)/((2^i)*(2^j)); for(y=i;y>=0;y–){ for(k=j;k>=0;k–){ *(*(c+2)+k) = max(y,calci(i+1,k,n,c)+calci(i+2,k,n,c)+calci(i,k+1,n,c)); } for(y=0;y<=j+2;y++){ *(*(c+1)+y)=*(*(c+2)+y); *(*(c+0)+y)=*(*(c+1)+y); } } return *(*(c+2)+0); } int main(){ int i,j,n,z,x,y; printf("Enter the amount\n"); scanf("%d",&n); x=log(n)/log(2); y=log(n)/log(3); int arr[3][y+3]; for(i=0;i<=2;i++) for(j=0;j<=y;j++) arr[i][j+2]=0; z = calci(x,y,n,arr); […]

Sistema de llamadas y mensajes.

Estoy intentando pasar un puntero a una llamada del sistema pasando un mensaje con esa llamada. El puntero debe estar a un int []. Sin embargo, la definición del mensaje espera que se pase un puntero de carácter. ¿Cómo puedo enviar un puntero int? int pidarray[j]; m.m1_p1 = pidarray; ¿Es posible convertir los tipos de […]

Doble puntero gratuito utilizando una función.

Así que he creado y asignado memoria para un puntero doble usando la siguiente función: void mallocDoubleArr(double ***arr, int size) { printf(“Here: %d”, size); int i, j; *arr = malloc(size * sizeof(double*)); for(i = 0; i < size; i++) { (*arr)[i]= malloc(size*sizeof(double)); for (j = 0; j < size; j++) { (*arr)[i][j] = 0; } […]

Desasignar memoria con free () no funciona

Aquí hay un pequeño progtwig que llena algunos arreglos e imprime su contenido en la pantalla: #include #include typedef struct{ double **plist; int plistSize; } ParticleList; void sendPar(int *n, int np){ // allocate memory for struct pl ParticleList pl; // allocate memory for ParticleList np times pl.plist = malloc(sizeof(ParticleList) * np); // allocate memory for […]

Eliminar un elemento de una tabla (progtwig c)

Tengo un método rtable_remove que va como el siguiente int rtable_remove(RESIZABLE_TABLE * table, char * name) { int i = 0; int j = 0; int position = 0; for(i = 0; i currentElements;i++) { if(strcmp(table->array[i].name, name) == 0) { position = i; free(&(table->array[i].name)); free(&(table->array[i].value)); for(j = position; j currentElements;j++) { table->array[j].name = table->array[j+1].name; table->array[j].value […]