Help with string pointers as a parameter of a function

I think its related to the string pointer parameter of the inx function. - probably : sr *string[1000]
Please could somebody point me in the right direction.
Thanks.

package main

import “fmt”

func main() {
theStr := “ASDSFHHTBBKLKKJHHDFGHJKHHHJHHKJKJJKJKsdkejffkjf43889934ythbnv3ouy4ti3ykfjjvwkjhfwiuiu4ui4uiyruuhfufuiwefhfwekllllllfe34t3gphrepgqhg38po3hgvnfh38t98ohgerqoi084rt3ukovpklmnfvb [gj po 5hop p6iy 904254uy 45uy 45iuuy 45uy 24u209386 34tu 09y0 5u5ty9025y 59u934tp33tgprg nbnvkoiojh1234567iklr,fcv7ytgvb rgb 98uhbrtghnoikjnrfgvyhntghbuik,rfvokmrtg9iuj5rtfychntf8cihjng vf8ihjngvfi hnb jikjgdfkjverohgvoreihjgolerkgoehvve rlkvoijinvn o4erugoerutjblkgfbkdjfnveorijgve;djvboerijvbofdn”

var (	
	iWork int
	sWork string
	iRegister2[1000] uint64
	iRegister4[1000] uint64
	iRegister8[1000] uint64
	iRegister16[1000] uint64
	iRegister32[1000] uint64
	iRegister64[1000] uint64
	sRegister2[1000][2] string
	sRegister4[1000][4] string
	sRegister8[1000][8] string
	sRegister16[1000][16] string
	sRegister32[1000][32] string
	sRegister64[1000][64] string
	iInx2 uint32
	iInx4 uint32
	iInx8 uint32
	iInx16 uint32
	iInx32 uint32
	iInx64 uint32
)
iWork = 0
for iWork = 0; iWork < len(theStr); iWork = iWork + 2{
	if (iWork + 2) < len(theStr){
		sWork = theStr[iWork:iWork + 1]
		inx(sWork, &sRegister2, &iRegister2, &iInx2)
	}
	if (iWork + 4) % 4 == 0 && (iWork + 4) < len(theStr){
		sWork = theStr[iWork:iWork + 3]
		inx(sWork, &sRegister4, &iRegister4, &iInx4)
	}
	if ((iWork + 8) % 8) == 0 && (iWork + 8) < len(theStr){
		sWork = theStr[iWork:iWork + 7]
		inx(sWork, &sRegister8, &iRegister8, &iInx8)
	}
	if ((iWork + 16) % 16) == 0 && (iWork + 16) < len(theStr){
		sWork = theStr[iWork:iWork + 15]
		inx(sWork, &sRegister16, &iRegister16, &iInx16)
	}
	if ((iWork + 32) % 32) == 0 && (iWork + 32) < len(theStr){
		sWork = theStr[iWork:iWork + 31]
		inx(sWork, &sRegister32, &iRegister32, &iInx32)
	}		
	if ((iWork + 64) % 64) == 0 && (iWork + 64) < len(theStr){
		sWork = theStr[iWork:iWork + 63]
		inx(sWork, &sRegister64, &iRegister64, &iInx64)
	}		
}
fmt.Printf("2 char array = %d\n", iInx2)
fmt.Printf("4 char array = %d\n", iInx4)
fmt.Printf("8 char array = %d\n", iInx8)
fmt.Printf("16 char array = %d\n", iInx16)
fmt.Printf("32 char array = %d\n", iInx32)
fmt.Printf("64 char array = %d\n", iInx64)	

}

func inx(s string, sr *string[1000], ir *uint64, ii *uint32) {
var i int

for i = 0; i < *ii && (*sr)[i] != s; i++ {
}
if i >= *ii {
	(*sr)[i] = append((*sr)[i],s)
	*ii = i
	(*ir)[i]++
}

}

Im getting the following errors:
./prog.go:66:6: missing function body
./prog.go:66:30: syntax error: unexpected [, expecting comma or )
./prog.go:69:2: syntax error: non-declaration statement outside function body

Go build failed.

A pointer to an array of strings is *[1000]string IIRC.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.