Lista genérica enlazada en C

A diferencia de C++ y Java , C no admite genéricos. ¿Cómo crear una lista enlazada en C que se pueda usar para cualquier tipo de datos? En C, podemos usar un puntero vacío y un puntero de función para implementar la misma funcionalidad. Lo mejor del puntero vacío es que se puede usar para … Continue reading «Lista genérica enlazada en C»

Una representación poco común de elementos de array

Considere el siguiente programa.   C int main( ) {   int arr[2] = {0,1};   printf(«First Element = %d\n»,arr[0]);   getchar();   return 0; } C++ // C++ Program to represent array in an uncommon way   #include <iostream> using namespace std;   int main() {       int arr[2] = {0, 1};     cout << «First Element = » … Continue reading «Una representación poco común de elementos de array»

C | Conceptos básicos del puntero | Pregunta 4

Considere un compilador donde int toma 4 bytes, char toma 1 byte y puntero toma 4 bytes. #include <stdio.h>    int main() {     int arri[] = {1, 2 ,3};     int *ptri = arri;        char arrc[] = {1, 2 ,3};     char *ptrc = arrc;        printf(«sizeof arri[] = %d «, sizeof(arri));     printf(«sizeof ptri = %d … Continue reading «C | Conceptos básicos del puntero | Pregunta 4»

Falla de Segmentación (SIGSEGV) vs Error de Bus (SIGBUS)

La falla de segmentación (SIGSEGV) y el error de bus (SIGBUS) son señales generadas cuando el sistema operativo detecta un error grave del programa y no hay forma de que el programa pueda continuar ejecutándose debido a estos errores. 1) La falla de segmentación  (también conocida como SIGSEGV y generalmente es la señal 11) ocurre … Continue reading «Falla de Segmentación (SIGSEGV) vs Error de Bus (SIGBUS)»

¿Por qué C trata los parámetros de array como punteros?

En C, los parámetros de array se tratan como punteros principalmente a, Para aumentar la eficiencia del código. para ahorrar tiempo Es ineficiente copiar los datos de la array en términos de memoria y tiempo; y la mayoría de las veces, cuando pasamos una array, nuestra intención es solo referirnos a la array que nos … Continue reading «¿Por qué C trata los parámetros de array como punteros?»

programa C para ordenar una array usando punteros

Dada una array de tamaño n, la tarea es ordenar esta array usando punteros en C. Ejemplos: Input: n = 5, arr[] = {0, 23, 14, 12, 9} Output: {0, 9, 12, 14, 23} Input: n = 3, arr[] = {7, 0, 2} Output: {0, 2, 7} Enfoque: la array se puede obtener con la … Continue reading «programa C para ordenar una array usando punteros»

Regla en el sentido de las agujas del reloj/Espiral en C/C++ con ejemplos

El Método Espiral/En el sentido de las agujas del reloj es una herramienta mágica para que los programadores de C/C++ definan el significado de la declaración de sintaxis en la cabeza en cuestión de segundos. Este método fue creado por David Anderson y aquí hay un breve resumen sobre cómo aplicar este método. Mientras codifica, … Continue reading «Regla en el sentido de las agujas del reloj/Espiral en C/C++ con ejemplos»

Salida de programas C | Juego 64 (Punteros)

Prerrequisito: Punteros en C Pregunta 1: ¿Cuál será el resultado del siguiente programa? #include «stdio.h» int main() {     char a[] = { ‘A’, ‘B’, ‘C’, ‘D’ };     char* ppp = &a[0];     *ppp++; // Line 1     printf(«%c %c «, *++ppp, –*ppp); // Line 2 } OPCIONES: a)CB b)BA c)BC d)CA OUTPUT: (d) C A Explicación: Línea … Continue reading «Salida de programas C | Juego 64 (Punteros)»

restringir palabra clave en C

En el lenguaje de programación C (después del estándar 99), se introduce una nueva palabra clave conocida como restrict.   La palabra clave restrict se usa principalmente en declaraciones de punteros como un calificador de tipo para punteros. No añade ninguna funcionalidad nueva. Es solo una forma para que el programador informe sobre una optimización que … Continue reading «restringir palabra clave en C»

Pasar NULL a printf en C

Considere el siguiente fragmento de código C. char* p = NULL; printf(«%s», p); ¿Cuál debería ser la salida del programa anterior? La impresión espera una array de caracteres terminada en ‘\ 0’ (o literal de string) mientras que recibe un puntero nulo. Pasar NULL a printf es un comportamiento indefinido. De acuerdo con la Sección … Continue reading «Pasar NULL a printf en C»