- Megjött a Chieftec VEGA M szériás tápok legnagyobb teljesítményű kiadása
- 280 Hz-es, remekül felszerelt WOLED monitor jött a Gigabyte gondozásában
- Itt az AI videók TikTokja, az OpenAI új agymenése
- Rekordösszegért kerül szaúdi kézbe az Electronic Arts
- Nem saját tervezésű a Zhaoxin új szerverprocesszora
- AMD Navi Radeon™ RX 9xxx sorozat
- Notebook hibák
- Milyen billentyűzetet vegyek?
- AMD vs. INTEL vs. NVIDIA
- Milyen belső merevlemezt vegyek?
- Androidos tablet topic
- Milyen házat vegyek?
- Steampunk hangulatú, nem túl drága, de fémházas klaviatúrát mutatott be a Yunzii
- OLED TV topic
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
Akkor lehet, hogy valami fogalmi képzavar esete forog fenn nálam, vagy nem vágom,
de az alábbi példaprogram jól szemlélteti a dinamikus memóriafoglalást, amire gondoltam, itt az eredeti tömbből egy új tömbbe gyűjti az eredeti tömbben szereplő, átlag alatti számokat, és pont akkora memóriát foglalunk le az új tömbnek, amennyire szükség van, nem többet, nem kevesebbet:#include <stdio.h>
#include <stdlib.h>
double *atlagalatt(double tomb[], int meret, int *ujmeret){
double *ujtomb;
int i, db, to;
double szum, atlag;
/* mi az atlag */
szum=0;
for (i=0; i<meret; ++i)
szum+=tomb[i];
atlag=szum/meret;
/* hany olyan van */
db=0;
for (i=0; i<meret; ++i)
if (tomb[i]<atlag)
db++;
/* foglalas es paranoia */
ujtomb=(double*)malloc(db*sizeof(double));
if (!ujtomb) {
*ujmeret=0;
return NULL;
}
/* masolas */
to=0;
for (i=0; i<meret; ++i)
if (tomb[i]<atlag)
ujtomb[to++]=tomb[i];
*ujmeret=db;
return ujtomb;
}
int main(){
double eredeti[100];
double *uj;
int ujmeret;
int i;
for (i=0; i<100; ++i)
eredeti[i]=rand()%100/10.0;
uj=atlagalatt(eredeti, 100, &ujmeret);
for (i=0; i<ujmeret; ++i)
printf("%4.2g ", uj[i]);
free(uj);
}Szerk.: Forrás: [link]
Sőt, ha már linkeltem, itt látható a 4-es feladatban a futásidőben történő memóriafoglalás:
#include <stdio.h>
#include <stdlib.h>
char ** darabol(char *s,char *m,int *db){
int n=0,i,last=0;
char **p;
// szavak számolása
for(i=0;s[i]!=0;i++){
int j;
for(j=0; m[j]!=0 && s[i]!=m[j]; j++);
if(m[j]!=0 && i!=last){
n++;
last=i+1;
}
}
p=(char**)malloc(n*sizeof(char*));
if(p==NULL)exit(-1);
for(i=n=last=0;s[i]!=0;i++){
int j;
for(j=0; m[j]!=0 && s[i]!=m[j]; j++);
if(m[j]!=0 && i!=last){
p[n]=(char*)malloc(i-last+1);
if(p[n]==NULL)exit(-1);
for(j=last;j<i;j++)p[n][j-last]=s[j];
p[n][j-last]=0;
n++;
last=i+1;
}
}
*db=n;
return p;
}
int main(int db,char ** par){
FILE * fp;
char sor[1025];
int meret;
if(db<3)return -1;
fp=fopen(par[1],"rt");
if(fp==NULL)return -1;
while(fgets(sor,1025,fp)!=NULL){
char **p=darabol(sor,par[2],&meret);
while(meret--)free(p[meret]);
free(p);
}
}
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Samsung Galaxy Z Flip 5 512GB, Kártyafüggetlen, 1 Év Garanciával
- Eladó Fitbit Charge 6 /Coral színű
- Asztali PC , i7 13700F , RTX 4070 , 32GB DDR5 , 1TB NVME
- Asztali PC , R7 5700X , RX 5700 XT , 16GB RAM , 512GB NVME , 750GB HDD
- GAMER PC! Ryzen 5700X / 32GB DDR4 / RTX 4060 Ti 16GB / 1TB NVMe / 650w Gold! BeszámítOK
- Apple iPhone 13 Pro 128GB,Adatkabel,12 hónap garanciával
- Bomba ár! Dell Latitude E5550 - i5-5GEN I 8GB I 256GB SSD I 15,6" I W10 I HDMI I Cam I Gari!
- HIBÁTLAN iPhone 14 Pro 256GB Space Black -1 ÉV GARANCIA -Kártyafüggetlen, MS3234
- EREDETI NINTENDO Pokemon Go Plus autocatcher dobozban eladó
- GYÖNYÖRŰ iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3447, 94% Akkumulátor
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest