chce się komuś wnikać... program działa robi swoje segreguje nawiasy klamrowe podanego pliku *.cpp ale wywala jakiś błąd:
./a.out
tekst.cpp
*** Error in `./a.out': free(): invalid next size (fast): 0x00000000018e5c50 ***
Przerwane (zrzut pamięci)
#include<iostream>
#include<fstream>
#include<string>
#include<cstdlib>
//#include <cstdio>
using namespace std;
int main()
{/*1a*/
string a;cin>>a;string ch="chmod 777 ";ch[10]=' ';
short pn=0,ln=0,i,licl=0,licp=0;
char *b = new char [a.length()+2];char *c = new char [a.length()];char d;
char wej[9],wej2[10],wej3[11],wyj[9],poz[8],wyj2[10],wyj3[11];
wej[0]='\n';wej[1]='{';wej[2]='/';wej[3]='*';wej[4]='1';wej[5]='a';wej[6]='*';wej[7]='/';wej[8]='\n';
wej2[0]='\n';wej2[1]='{';wej2[2]='/';wej2[3]='*';wej2[4]='0';wej2[5]='1';wej2[6]='a';wej2[7]='*';wej2[8]='/';wej2[9]='\n';
wej3[0]='\n';wej3[1]='{';wej3[2]='/';wej3[3]='*';wej3[4]='0';wej3[5]='0';wej3[6]='1';wej3[7]='a';wej3[8]='*';wej3[9]='/';wej3[10]='\n';
wyj[0]='\n';wyj[1]='/';wyj[2]='*';wyj[3]='1';wyj[4]='b';wyj[5]='*';wyj[6]='/';wyj[7]='}';wyj[8]='\n';
poz[0]='\n';poz[1]='/';poz[2]='*';poz[3]='b';poz[4]='*';poz[5]='/';poz[6]='}';poz[7]='\n';
wyj2[0]='\n';wyj2[1]='/';wyj2[2]='*';wyj2[3]='0';wyj2[4]='1';wyj2[5]='b';wyj2[6]='*';wyj2[7]='/';wyj2[8]='}';wyj2[9]='\n';
wyj3[0]='\n';wyj3[1]='/';wyj3[2]='*';wyj3[3]='0';wyj3[4]='0';wyj3[5]='1';wyj3[6]='b';wyj3[7]='*';wyj3[8]='/';wyj3[9]='}';wyj3[10]='\n';
for(i=0;i<a.length()+2;i++)
{/*2a*/
if(a[i]!='.')
{/*3a*/
b[i]=a[i];
/*3b*/}
else
{/*4a*/
b[i]='_';b[i+1]='2';b[i+2]='.';b[i+3]='c';b[i+4]='p';b[i+5]='p';break;
/*4b*/}
/*2b*/}
for(i=0;i<a.length();i++)c[i]=a[i];
for(i=0;i<a.length()+2;i++)ch[i+11]=b[i];
ifstream plik(c);ofstream plik2(b);
system(ch.c_str());
while(!plik.eof())
{/*5a*/
plik.get(d);if(d=='{')ln++;else if(d=='}')pn++;
/*5b*/}
plik.close();plik.open(c);
bool bl[ln],bl100=1,bl1000=1,bre=0,bwy=1;for(i=0;i<ln;i++)bl[i]=0;
while(!plik.eof())
{/*6a*/
plik.get(d);
if(d=='{')
{/*7a*/
if(licl<10){wej[4]=licl+48;for(i=0;i<9;i++)plik2<<wej[i];licl++;bwy=0;}
else if(licl<100)
{/*8a*/
wej2[5]=(licl%10)+48;wej2[4]=((licl-(licl%10))/10)+48;for(i=0;i<10;i++)plik2<<wej2[i];licl++;bwy=0;
/*8b*/}
else if(licl<1000)
{/*10a*/
if(licl%100<10)
{/*12a*/
wej3[6]=(licl%100)+48;wej3[5]=48;wej3[4]=((licl-(licl%100))/100)+48;for(i=0;i<11;i++)plik2<<wej3[i];licl++;bwy=0;
/*12b*/}
else
{/*13a*/
wej3[6]=((licl%100)%10)+48;wej3[5]=(((licl%100)-((licl%100)%10))/10)+48;wej3[4]=((licl-(licl%100))/100)+48;for(i=0;i<11;i++)plik2<<wej3[i];licl++;bwy=0;
/*13b*/}
/*10b*/}
//for(i=0;i<11;i++)plik2<<wej[i];licl++;
/*7b*/}
else if(d=='}')
{/*14a*/
licp=licl-1;//cout<<licp<<endl;for(i=0;i<ln;i++)cout<<bl[i];cout<<endl;
while(bl[licp])
{/*15a*/
if(licp)licp--;else
{/*16a*/
for(i=0;i<8;i++)plik2<<poz[i];bre=1;bwy=0;break;
/*16b*/}
/*15b*/}
if(!bre)
{/*17a*/
if(licp<10)
{/*18afor(i=0;i<ln;i++)cout<<bl[i];cout<<" "<<licp<<endl;*/
wyj[3]=licp+48;for(i=0;i<9;i++)plik2<<wyj[i];bl[licp]=1;bwy=0;
/*18b*/}
else if(licp<100)
{/*19a*/
wyj2[4]=(licp%10)+48;wyj2[3]=((licp-(licp%10))/10)+48;for(i=0;i<10;i++)plik2<<wyj2[i];bl[licp]=1;bwy=0;
/*19b*/}
else if(licp<1000)
{/*20a*/
if(licp%100<10)
{/*21a*/
wyj3[5]=(licp%100)+48;wyj3[4]=48;wyj3[3]=((licp-(licp%100))/100)+48;for(i=0;i<11;i++)plik2<<wyj2[i];bl[licp]=1;bwy=0;
/*21b*/}
else
{/*22a*/
wej[5]=((licp%100)%10)+48;wej[4]=(((licp%100)-((licp%100)%10))/10)+48;wej[3]=((licp-(licp%100))/100)+48;for(i=0;i<11;i++)plik2<<wyj2[i];bl[licp]=1;bwy=0;
/*22b*/}
/*20b*/}
/*14b*/}
/*17b*/}bre=0;
if(bwy)plik2<<d;bwy=1;
/*6b*/}
return 0;
/*1b*/}
ten chmod 777 ... po to bo utworzony nowy plik z posegregowanymi nawiasami robił się z uprawnieniami takimi że nie mogłem go edytować