Articles of c

algoritmo per generare combinazioni di numeri senza ripetizione

Ho controllato quasi tutti i post simili qui ma non sono riuscito a capire come posso fare quello che voglio. Quello che sto cercando è di dare un input in un programma C, diciamo numero 4, e il programma restituisce i seguenti numeri in un array: 1 2 3 4 12 13 14 23 24 […]

malloc del puntatore alla struttura funziona perché?

In un codice che ho usato per errore list* Head = malloc(sizeof(list*)); invece del corretto list* Head = malloc(sizeof(list)); per creare un nuovo nodo di tipo list ma ha funzionato bene in seguito. Quindi la mia domanda è: perché ha funzionato correttamente?

Limite di traduzione in C

Sto tentando di catturare l’input dell’utente tramite scanf: char numStrings[5000]; printf(“Enter string of numbers:\n\n”); scanf(“%s”, numStrings); Tuttavia, la lunghezza della stringa immessa è di 5000 caratteri. Il limite di traduzione in c99 è 4095 caratteri. Devo dare istruzioni all’utente di interrompere il loro contributo a metà o c’è un lavoro migliore intorno a cui non […]

passare un puntatore triplo in funzione, quindi eseguire il mallocing di un array 2D

Ottenere un errore di segmentazione e non capisco il motivo, devi passare in triplo puntatore per l’assegnazione, quindi non puoi cambiarlo … Ecco la funzione void alloc2d(double*** a, int m, int n) { int i, j; **a = malloc(sizeof(double *) * m); a[0] = malloc(sizeof(double) * n * m); for(i = 0; i < m; […]

In che modo la funzione printf può assumere un numero variabile di parametri mentre vengono emessi?

Mi chiedo davvero come è stato eseguito printf. Esiste una struttura di array di parametri in C? Posso definire la mia funzione personalizzata come printf?

Creazione di più socket su un client

Ho una situazione in cui un client deve essere connesso a più server. In base alla domanda qui risolta: Connessione a più server da un singolo client socket C Avrei bisogno di creare un singolo socket per connettersi a tutti i server. Quello che sto cercando di chiedere è: c’è un modo più efficiente per […]

C stampa e memorizza l’argomento della riga di comando in modo round robin

Sono nuovo alla programmazione c e ho riscontrato questo problema di implementazione. La situazione è che ho bisogno di usare fork() per creare 4 processi figlio per stampare gli argomenti della riga di comando in modo round robin, cioè se l’input è ./abc.c RR GG EE WW BB CC DD AA , processo figlio 1 […]

Memoria allocata senza allocazione usando malloc, come?

Di seguito è riportato un semplice frammento di codice: int main() { int *p; p=(int*)malloc(sizeof(int));//allocate m/y 4 1 int printf(“P=%p\tQ=%p”,p,p+2); } In un esempio di esecuzione, mi ha dato l’output come di seguito: P=0x8210008 Q=0x8210010 L’indirizzo iniziale di P è-P = 0x8210008, il byte successivo è 0x8210009, il byte successivo è 0x821000A, il byte successivo […]

output di char non firmato di un char firmato

Ho il codice seguente: char x = -1; int y = x; printf(“%u\n”, x); printf(“%u\n”, y); L’output è: 4294967295 4294967295 Non capisco perché x può avere un tale valore. So che il valore massimo di un char unsigned è 255 e per un char firmato 127. Come può essere 4294967295?

come creare un numero indefinito di thread e utilizzare WaitForMultipleObjects () in c su Windows

PS: Sono molto nuovo ai thread. Ho un problema in cui ho bisogno di aspettare le richieste di connessione (numero arbitrario di volte) dai client, accettare una connessione su un socket, creare un thread di lavoro dopo la connessione. Il thread creato crea quindi un array di caratteri, funziona su di esso e deve passarlo […]